Locking vs Non-blocking Code